package com.yujiahao.bigdata.sql

import org.apache.spark.sql.{DataFrame, SparkSession}

object SparkSQL01_DataFrame {
  def main(args: Array[String]): Unit = {
    //TODO 1、SparkSQL直接构建无法构建，包是私有的，使用伴生对象伴生类构建builder
    //SparkSQL对SparkCore进行了封装，所以环境也要发生变化

    val spark = SparkSession.builder
      .master("local")
      .appName("Word Count")
      .getOrCreate()
    //构建Dataframe
    val df: DataFrame = spark.read.json("data/user.json")
    df.show

    //使用SQL的方式访问DataFrame--使用SQL语句前要先创建成临时视图
    df.createOrReplaceTempView("user")
    spark.sql("select * from user").show()
    spark.sql("select avg(age) from user").show()

    //使用DSL方式访问--直接调用方法
    df.select("*").show()
    df.select("id", "name").show()

    //TODO 2、关闭资源
    spark.stop()
  }

}
